package main

import "fmt"

/**
go语言中没有异常机制，但是有panic/recover模式来处理错误
panic可以在任何地方引发，但recover只有在defer调用的函数中有效
 */
func main() {
	e_a()
	e_b()
	e_c()
}

func e_a(){
	fmt.Println("func A")
}

func e_b(){
	defer func() {
		if err := recover(); err != nil {
			fmt.Println("Recover in B")
		}
	}()
	panic("panic in B")
}

func e_c(){
	fmt.Println("func c")
}